for

for 可以当作 while 来使用,for 第一部分是启始值,第二个是终止条件,第三个是每次循环的操作,这三部分都可以被省去。还可以一个条件也不跟,那么将会是一个死循环。可以使用 strconv.Itoa 来将一个数字转换成字符串,os.Open 打开文件,scanner.Text() 获取文件文本等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package main

import (
"bufio"
"fmt"
"os"
"strconv"
)

func converTobin(n int) string{
result := ""
for ;n>0 ;n/=2 { // 初始条件为空,循环条件为 n>0, 每次循环 n/2
lsb := n%2
result = strconv.Itoa(lsb) + result // strconv.Itoa(lsb) 是将 string 转换为 int 类型
}
return result
}

func printFile(filename string){
file, err := os.Open(filename) // 打开文件
if err != nil{
panic(err) // 报错即终止
}
scanner := bufio.NewScanner(file)

for scanner.Scan(){ // for 没有开始条件和递增条件,就只有一个终止条件,此时 for 相当于 while。当只有一个终止条件的时候,可以省略 ;
fmt.Println(scanner.Text())
}

for { // 死循环
fmt.Println("abc")
}
}


func main(){
fmt.Println(
converTobin(5),
converTobin(13), // 采用除2取于法,将10进制转换为2进制
)

fmt.Println(strconv.Itoa(123)) // 输出为 123, 类型为 string

printFile("aaa.txt")
}